When a computer user first installs an application on a computer, generally an installation procedure is performed. The installation procedure writes files and information to appropriate locations on the computer. Often, core files, such as executable files or libraries of subroutines, for the application are written to an application directory or folder in the computer's file system. In addition to those core files, the installation procedure may write individual files to the application directory or to another directory. For instance, a configuration file may include information used by the application to configure certain features of the application at run-time. Often, the information in the configuration file can be modified from the application to personalize the features of the application for the user, or to modify the performance of the application.
In addition to the configuration file, many applications make use of other individual files to support the functionality of the application. One example of such an individual file is a "template" file. Template files are often used by an application as a model for each new document created by the application. The template file may include information defining desired characteristics for the new documents. The installation procedure may create a template file which is pre-configured for a particular set of document characteristics. A user may modify the template file, usually through the application, to alter the desired characteristics of new documents.
The installation procedure may also write information to a registration database, or "registry," maintained by the operating system of the computer. The registry may be a file maintained by the operating system which defines certain features and characteristics of applications installed on the computer. For instance, the registry may identify the location in the directory structure for the application and the individual files, such as the configuration file and the template file. Unlike the individual files discussed above, the registry is maintained by the operating system. Consequently, the location of the registry should not vary from computer to computer, which makes the information in the registry easily locatable by applications executing on the computer.
Many computer users complain that setting up a second computer can be a difficult and time consuming task. Any software installed on the first computer must be installed on the second computer. If the user modified any of the features and characteristics of the applications on the first computer, those modifications are not reflected on the second computer. The installation procedure generally installs an application with a pre-configured set of default characteristics. Therefore, the user must also spend time making the same modifications to the features and characteristics on the second computer if a similar interface is desired between the first and second computers. The customizations and user settings contained in the various files discussed above are collectively termed "the settings."
A related problem exists when system administrators attempt to install applications on several computers in an enterprise-wide environment such that all of the computers exhibit the same user interface. If a user of one computer in the network modifies the settings at that computer, then that computer does not have the same user interface as other computers in the network. Those problems are heightened when the settings are maintained in several different locations, such as in the registry and in the individual files discussed above.
Unfortunately, existing mechanisms for transferring settings from the first computer to the second computer do not adequately address the need to retrieve settings from the individual files as well as the registry. Generally, existing mechanisms are limited to retrieving settings from the registry of the first computer. Existing mechanisms do not retrieve settings from the individual files for transport to the second computer. Accordingly, there is a need in the art for a mechanism by which configuration settings, including those in computer files separate from an operating system registry, may be transferred to other computers.